#include <bits/stdc++.h>

using namespace std;

class Solution
{
public:
    int minSubArrayLen(int target, vector<int> &nums)
    {
        // int length = nums.size();
        // int short_count = INT_MAX;
        // for (int i = 0; i < length; i++)
        // {
        //     int substr_sum = 0;
        //     for (int j = i; j < length; j++)
        //     {
        //         substr_sum = substr_sum + nums[j];
        //         if (substr_sum >= target)
        //         {
        //             int count = j - i + 1;
        //             if (count < short_count)
        //             {
        //                 short_count = count;
        //             }
        //             break;
        //         }
        //     }
        // }
        // if (short_count == INT_MAX)
        // {
        //     return 0;
        // }
        // return short_count;
        int length = nums.size();
        int short_count = INT_MAX;
        int sum = 0;
        int i = 0;
        for (int j = 0; j < length; j++)
        {
            sum = sum + nums[j];
            while (sum >= target)
            {
                int count = j - i + 1;
                if (count < short_count)
                {
                    short_count = count;
                }
                sum = sum - nums[i];
                i++;
            }
        }
        if (short_count == INT_MAX)
        {
            short_count = 0;
        }
        return short_count;
    }
};

Solution sol;

int main()
{
    vector<int> vec = {1, 2, 3, 4, 5};
    int target = 11;
    cout << sol.minSubArrayLen(target, vec) << endl;
    return 0;
}